"""
类属性
倘若不同对象要操作同一个属性，
那么各自对象赋予属性肯定是不合适的
类属性可以说是对象的全局变量
"""



class Tool:
    count = 0  #count是类属性，为了记录工具的数量
    def __init__(self,name):
        self.name = name
        Tool.count += 1
    @classmethod
    def show_tool_count(cls):
        """
        #cls相当于类对象，只会联想类属性
        """
        print(cls.count)  #静态检查



#假如我们想知道通过类实例了多少个对象，但是每次实例之后类都会初始化
tool1 = Tool('斧子')
tool2 = Tool('锤子')

print(f'创建了{Tool.count}件工具')
"""
此时使用tool1.count也能出结果
是因为属性获取结果时存在一个向上查找机制，
首先在对象内部查找对象数据
没有找到就会向上寻找类属性

所以容易出现问题
比如给tool1.count = 50
那么print（Tool.count）还是2
这里就是给tool1对象增加了一个对象属性叫count
"""

Tool.show_tool_count()

